//// 自增减类单目操作符函数
//#include <iostream>
//using namespace std;
//
//class Human {
//public:
//    Human(int age = 0, const char* name = "匿名") :m_age(age), m_name(name) {
//        // [int m_age = age;]
//        // [string m_name(name);]
//    }
//    void getInfo() {
//        cout << "姓名:" << m_name << ", 年龄:" << m_age << endl;
//    }
//    // 成员形式操作符函数
//    Human& operator++(/* Human* this */) {
//        this->m_age += 1;   // 直接加1
//        return *this;
//    }
//    //int类型参数不给值，编译器自动补0（哑元）
//    Human operator++(/* Human* this */int) {
//        Human old = *this;   // 备份原来的值
//        this->m_age += 1;  // 直接加1
//        return old;  // 返回原来的值
//    }
//private:
//    int m_age;
//    string m_name;
//    friend Human operator+(const Human& l, const Human& r); // 友元声明
//};
//// 全局形式操作符函数  自己课下完成
//
//// 模拟类的设计者(类库\别人设计的类\自己设计的类)
//// -----------------------------
//// 模拟用户(使用类的人)
//
//int main(void) {
//    Human a(22, "张飞"), b(20, "赵云");  // 非常左值
//    const Human c(25, "关羽"), d(32, "马超"); // 常左值
//
//    (++a).getInfo(); // a.operator++() 或 ...
//
//    (/*|...|*/b++).getInfo(); // b.operator++(0) 或 ...
//    b.getInfo();
//    /*
//      int a = 3, b = 5;         // 非常左值
//      const int c = 7, d = 9;   // 常左值
//
//      ++a;
//      ++c; // error
//      ++5; // error
//
//      a++;
//      c++; // error
//      5++; // error
//    */
//    return 0;
//}
